<?php
/**
 * 菜单基类
 * User: Administrator
 * Date: 2018\9\10 0010
 * Time: 17:08
 */

namespace app\Lib\InterfaceIn\AdminAuth\AdminMenu;


use app\Lib\InterfaceIn\AdminAuth\MenuAuthHandle;
use app\Lib\InterfaceIn\User\UserHandle;

interface AdminMenuBaseHandle
{
    public function __construct(UserHandle $opUserObj);

    /**
     * 菜单名称
     * @param $name
     * @return $this
     */
    public function setName($name);

    /**
     * 项目名称
     * @param $project
     * @return $this
     */
    public function setProject($project);

    /**
     * 设置控制器
     * @param $c
     * @return $this
     */
    public function setC($c);

    /**
     * 设置方法
     * @param $a
     * @return $this
     */
    public function setA($a);

    /**
     * 设置参数
     * @param $args
     * @return $this
     */
    public function setArgs($args);

    /**
     * 设置父级类
     * @param MenuAuthHandle $parentClass
     * @return mixed
     */
    public function setParentClass( MenuAuthHandle $parentClass);

    /**
     * 设置排序
     * @param $sortNo
     * @return $this
     */
    public function setSortNo($sortNo);

    /**
     * 设置菜单显示状态
     * @param $showMenu
     * @return $this
     */
    public function setShowMenu($showMenu);

    /**
     * 菜单图标
     * @param $menuClass
     * @return $this
     */
    public function setMenuClass($menuClass);

    /**
     * 初级菜单标识
     * @param $mark
     * @return $this
     */
    public function setMark($mark);

    /**
     * 更新菜单缓存时间
     *
     */
    public function saveTime();

}